<!DOCTYPE html>
<html lang="en">
<head>
        <meta charset="utf-8" />
        <title>T-appendix.editor.vscode</title>
        <link rel="stylesheet" href="/theme/css/main.css" />

        <!--[if IE]>
            <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
        <![endif]-->
</head>

<body id="index" class="home">
        <header id="banner" class="body">
                <h1><a href="/">PythonTutorials </a></h1>
                <nav><ul>
                    <li><a href="/category/cpp.html">cpp</a></li>
                    <li class="active"><a href="/category/python.html">python</a></li>
                </ul>
                </nav>
        </header><!-- /#banner -->
<section id="content" class="body">
  <article>
    <header>
      <h1 class="entry-title">
        <a href="/T-appendix.editor.vscode.html" rel="bookmark"
           title="Permalink to T-appendix.editor.vscode">T-appendix.editor.vscode</a></h1>
    </header>

    <div class="entry-content">
<footer class="post-info">
        <span>Mon 06 April 2020</span>
<span>| tags: <a href="/tag/python.html">python</a><a href="/tag/progarmming.html">progarmming</a><a href="/tag/excel.html">Excel</a></span>
</footer><!-- /.post-info -->      <h1>Visual Studio Code 的安装与配置</h1>
<p>官方文档请查询：</p>
<blockquote>
<p>https://code.visualstudio.com/docs</p>
</blockquote>
<h2>允许命令行启动 VS Code</h2>
<p>使用快捷键 <code>⇧⌘p</code> 呼出 Command Palette，在其中输入 <code>shell command</code>，而后选中 <code>Install 'code' command in PATH</code>。此后，就可以在 Terminal 命令行中使用 <code>code</code> 命令了。(Windows 系统安装 VS Code 时会自动配置好，并不需要此步骤）</p>
<p><img alt="123" src="https://raw.githubusercontent.com/selfteaching/the-craft-of-selfteaching/master/images/vscode-shell.png?raw=true"></p>
<h2>选择 Python 解析器版本</h2>
<p>使用快捷键 <code>⇧⌘p</code> 呼出 Command Palette，在其中输入 <code>select interpreter</code>，而后选中 <code>Python: Select Interpreter</code>。</p>
<p><img alt="123" src="https://raw.githubusercontent.com/selfteaching/the-craft-of-selfteaching/master/images/vscode-select-python-version1.png?raw=true"></p>
<p>而后，在系统中已安装的若干个版本中选择你需要的那一个。MacOS 系统自带一个 Python 2.7，而我们安装的 Anaconda 为系统另外安装了一个 Python 3.7。</p>
<p><img alt="123" src="https://raw.githubusercontent.com/selfteaching/the-craft-of-selfteaching/master/images/vscode-select-python-version2.png?raw=true"></p>
<h2>安装扩展</h2>
<p>使用快捷键 <code>⇧⌘x</code> 呼出扩展面板。安装 anaconda 扩展，它会连带装上 python 扩展：</p>
<p><img alt="123" src="https://raw.githubusercontent.com/selfteaching/the-craft-of-selfteaching/master/images/vscode-extensions.png?raw=true"></p>
<p>另外，为了输入方便，有两个扩展可选安装：</p>
<blockquote>
<ul>
<li>Tabout 有它之后，可以使用 TAB 键跳出光标后的括号、引号等等；</li>
<li>Sublime Text Keymap and Settings Importer 有它之后，可以在 VS Code 中使用 SublimeText 的快捷键，最重要的当属多光标编辑 <code>⇧⌘l</code>……</li>
</ul>
</blockquote>
<h2>自动补全</h2>
<p>专业编辑器最重要的功能之一，就是能够在你输入的时候它帮你做到 “自动补全”，通常使用的快捷键是 TAB 键 <code>⇥</code>。</p>
<p>TAB 键 <code>⇥</code> 触发的自动补全有两种：</p>
<blockquote>
<ul>
<li>当前文件中已有的字符串。比如，之前你输入过 <code>sum_of_word</code>；那么，之后，你就可以输入 <code>su</code> 或者干脆 <code>sow</code> 而后按 TAB 键 <code>⇥</code>，“自动补全” 功能会帮你完成输入 <code>sum_of_word</code></li>
<li>已有的 Snippets。比如，当你需要输入 <code>if ...: ...</code> 的时候，实际上当你输入 <code>if</code> 或者甚至 <code>i</code> 之后，你就可以用 TAB 键 <code>⇥</code>，“自动补全” 功能会为你 “自动完成” 语句块的输入。</li>
</ul>
</blockquote>
<p>字符串自动补全，使用的是所谓的 Fuzzy Match。输入 <code>sum_of_word</code> 中所包含的任意字符的任意组合（按顺序），它都会尽量去匹配；所以，<code>su</code> 和 <code>sow</code> 都可以匹配 <code>sum_of_word</code>，再比如，<code>rst</code> 可以匹配 <code>result</code>。</p>
<p>在 Snippet 自动补全的过程中，常常有若干个 “TAB Stop”，即，有若干个位置可以使用 TAB 键 <code>⇥</code>（或者，<code>Shift + ⇥</code>）来回切换；这时，第一种字符串自动补全的功能就失效了，如果需要使用字符串自动补全，那么需要按快捷键 ESC <code>⎋</code> 退出 Snippet 自动补全模式。</p>
<p>以下的 gif 文件演示的是以下代码的输入过程：</p>
<div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">sum_of_word</span><span class="p">(</span><span class="n">word</span><span class="p">):</span>
    <span class="nb">sum</span> <span class="o">=</span> <span class="mi">0</span>
    <span class="k">for</span> <span class="n">char</span> <span class="ow">in</span> <span class="n">word</span><span class="p">:</span>
        <span class="nb">sum</span> <span class="o">+=</span> <span class="nb">ord</span><span class="p">(</span><span class="n">char</span><span class="p">)</span> <span class="o">-</span> <span class="mi">96</span>
    <span class="k">return</span> <span class="nb">sum</span>
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s1">&#39;results.txt&#39;</span><span class="p">,</span> <span class="s1">&#39;w&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">results</span><span class="p">:</span>
    <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s1">&#39;words_alpha.txt&#39;</span><span class="p">,</span> <span class="s1">&#39;r&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="nb">file</span><span class="p">:</span>
        <span class="k">for</span> <span class="n">word</span> <span class="ow">in</span> <span class="nb">file</span><span class="o">.</span><span class="n">readlines</span><span class="p">():</span>
            <span class="k">if</span> <span class="n">sum_of_word</span><span class="p">(</span><span class="n">word</span><span class="o">.</span><span class="n">strip</span><span class="p">())</span> <span class="o">==</span> <span class="mi">100</span><span class="p">:</span>
                <span class="n">results</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">word</span><span class="p">)</span>
</pre></div>


<p>因为有这样的功能，所以你在输入程序的时候其实是非常从容的，可以很慢输入，边思考边输入…… 可实际上，完成速度却很快。</p>
<p><img alt="123" src="https://raw.githubusercontent.com/selfteaching/the-craft-of-selfteaching/master/images/vscodedemo.gif?raw=true"></p>
<p>另外，SublimeText 的多光标输入是很多程序员爱不释手的功能，于是，各种编辑器里都有第三方写的 SublimeText Keymap 插件，连 Jupyterlab 都有：</p>
<blockquote>
<p>https://github.com/ryantam626/jupyterlab_sublime</p>
</blockquote>
    </div><!-- /.entry-content -->

  </article>
</section>
        <section id="extras" class="body">
                <div class="blogroll">
                        <h2>blogroll</h2>
                        <ul>
                            <li><a href="http://getpelican.com/">Pelican</a></li>
                            <li><a href="http://python.org/">Python.org</a></li>
                            <li><a href="http://jinja.pocoo.org/">Jinja2</a></li>
                            <li><a href="#">You can modify those links in your config file</a></li>
                        </ul>
                </div><!-- /.blogroll -->
                <div class="social">
                        <h2>social</h2>
                        <ul>

                            <li><a href="#">You can add links in your config file</a></li>
                            <li><a href="#">Another social link</a></li>
                        </ul>
                </div><!-- /.social -->
        </section><!-- /#extras -->

        <footer id="contentinfo" class="body">
                <p>Powered by <a href="http://www.maxiaoan.com/">Maxiaoan</a></p>
        </footer><!-- /#contentinfo -->

</body>
</html>